﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Input.Bean;
using Shpm.App.Commons.Db.Beans.Master;
using Shpm.App.Commons.Db.Beans.Inp;

/// <summary>
/// Summary description for CheckInTaskDao
/// </summary>
namespace Shpm.App.Input.Dao
{
    public class CheckInTaskDao : ShpmBaseDao
    {
        public const string FIND_BY_CHECK_IN_TASK = "CheckInTask.FindByCheckInTask";
        public const string GET_CHECK_IN_TASK = "CheckInTask.GetCheckInTask";
        public const string FIND_BY_CHECK_IN_ITEM = "CheckInTask.FindByCheckInItem";
        public const string GET_GOODS_LIST = "CheckInTask.GetGoodsList";
        public const string GET_SERVICES_LIST = "CheckInTask.GetServicesList";
        public const string UPD_CHECK_IN_TASK = "CheckInTask.UpdCheckInTask";
        public const string UPD_MEMBER_STATUS = "CheckInTask.UpdMemberStatus";
        public const string INSERT_SERVICE = "CheckInTask.InsertService";
        public const string GET_CHECK_SERVICE = "CheckInTask.GetCheckService";
        public const string INSERT_GOODS = "CheckInTask.InsertGoods";
        public const string GET_CHECK_IN_GOODS = "CheckInTask.GetCheckInGoods";
        public const string DEL_CHECK_IN_GOODS = "CheckInTask.DelCheckInGoods";
        public const string DEL_CHECK_IN_SERVICE = "CheckInTask.DelCheckInService";
        public const string INSERT_ITEM = "CheckInTask.InsertItem";
        public const string DEL_CHECK_IN_ITEM = "CheckInTask.DelCheckInItem";
        public const string GET_CHECK_IN_ITEM = "CheckInTask.GetCheckInItem";
        
        
        

        
        
        
        public CheckInTaskDao()
        {
        }

        public IList FindByCheckInTask(CheckInTaskBean paramBean)
        {
            return base.QueryForList(FIND_BY_CHECK_IN_TASK, paramBean);
        }

        public CheckInTaskBean Load(CheckInTaskBean paramBean)
        {
            return (CheckInTaskBean)base.QueryForObject(GET_CHECK_IN_TASK, paramBean);
        }

        public IList FindByCheckInItem(CheckInItemBean paramBean)
        {
            return base.QueryForList(FIND_BY_CHECK_IN_ITEM, paramBean);
        }

        public IList GetGoodsList()
        {
            return base.QueryForList(GET_GOODS_LIST, new MstGoodsBean());
        }

        public IList GetServicesList()
        {
            return base.QueryForList(GET_SERVICES_LIST, new MstServicesBean());
        }

        /*
         *名称： UpdCheckInTask
         *功能： 更新对象。
         *参数： paramBean 
         *返回： 
         *说明： 
        */
        public object UpdCheckInTask(CheckInTaskBean paramBean)
        {

            return base.Update(UPD_CHECK_IN_TASK, paramBean);
        }

        /*
         *名称： UpdMemberStatus
         *功能： 更新对象。
         *参数： paramBean 
         *返回： 
         *说明： 
        */
        public object UpdMemberStatus(MemberSrhBean paramBean)
        {

            return base.Update(UPD_MEMBER_STATUS, paramBean);
        }

        /*
         *名称： InsertService
         *功能： 插入对象。
         *参数： paramBean 
         *返回： object
         *说明： 
        */
        public object InsertService(CheckInServiceBean paramBean)
        {

            return base.Insert(INSERT_SERVICE, paramBean);
        }


        /*
        *名称： GetCheckService
        *功能： 取得对象。
        *参数： paramBean 
        *返回： object
        *说明： 
       */
        public IList GetCheckService(CheckInServiceBean paramBean)
        {
            return base.QueryForList(GET_CHECK_SERVICE, paramBean);
        }

        /*
         *名称： InsertGoods
         *功能： 插入对象。
         *参数： paramBean 
         *返回： object
         *说明： 
        */
        public object InsertGoods(CheckInGoodsBean paramBean)
        {

            return base.Insert(INSERT_GOODS, paramBean);
        }


        /*
        *名称： GetCheckInGoods
        *功能： 取得对象。
        *参数： paramBean 
        *返回： object
        *说明： 
       */
        public IList GetCheckInGoods(CheckInGoodsBean paramBean)
        {
            return base.QueryForList(GET_CHECK_IN_GOODS, paramBean);
        }

        /*
        *名称： DelCheckInGoods
        *功能： 删除对象。
        *参数： paramBean 
        *返回： object
        *说明： 
       */
        public object DelCheckInGoods(CheckInGoodsBean paramBean)
        {
         
            return base.Delete(DEL_CHECK_IN_GOODS, paramBean);
        }


        /*
        *名称： DelCheckInService
        *功能： 删除对象。
        *参数： paramBean 
        *返回： object
        *说明： 
       */
        public object DelCheckInService(CheckInServiceBean paramBean)
        {

            return base.Delete(DEL_CHECK_IN_SERVICE, paramBean);
        }

        /*
         *名称： InsertItem
         *功能： 插入对象。
         *参数： paramBean 
         *返回： object
         *说明： 
        */
        public object InsertItem(CheckInItemBean paramBean)
        {

            return base.Insert(INSERT_ITEM, paramBean);
        }

        /*
        *名称： DelCheckInService
        *功能： 删除对象。
        *参数： paramBean 
        *返回： object
        *说明： 
       */
        public object DelCheckInItem(CheckInItemBean paramBean)
        {

            return base.Delete(DEL_CHECK_IN_ITEM, paramBean);
        }


        /*
        *名称： GetCheckInItem
        *功能： 取得对象。
        *参数： paramBean 
        *返回： object
        *说明： 
       */
        public IList GetCheckInItem(CheckInItemBean paramBean)
        {
            return base.QueryForList(GET_CHECK_IN_ITEM, paramBean);
        }

        /*
        *名称： CheckIn_Click
        *功能： 添加服务项目,物品,房间设施
        *参数： serviceList, goodsList,itemList
        *返回： 
        *说明： 
       */
        public void AddLodging(CheckInTaskBean bean, MemberSrhBean updMainBean, MemberSrhBean updSecondaryBean, MemberSrhBean updAccompanyBean, IList serviceList, IList goodsList, IList itemList)
        {
            try
            {
                base.BeginTransaction();

                //更新数据
                this.UpdCheckInTask(bean);
                this.UpdMemberStatus(updMainBean);
                this.UpdMemberStatus(updSecondaryBean);
                this.UpdMemberStatus(updAccompanyBean);

                // 插入服务项目
                IEnumerator enm = serviceList.GetEnumerator();
                while (enm.MoveNext())
                {
                    CheckInServiceBean serviceBean = (CheckInServiceBean)enm.Current;
                    this.InsertService(serviceBean);
                }


                // 插入物品
                enm = goodsList.GetEnumerator();
                while (enm.MoveNext())
                {
                    CheckInGoodsBean goodsBean = (CheckInGoodsBean)enm.Current;
                    this.InsertGoods(goodsBean);
                }

                // 插入房间设施
                enm = itemList.GetEnumerator();
                while (enm.MoveNext())
                {
                    CheckInItemBean itemBean = (CheckInItemBean)enm.Current;
                    this.InsertItem(itemBean);
                }
                base.CommitTransaction();
            }
            catch (Exception e)
            {
                base.RollBackTransaction();
                throw e;
            }
        }

    }

}